import sql.SQLCommand;
import sql.SQLOperate;
import sql.Transaction;

/**
 * 将对象组合成树形结构以表示“部分-整体”的层次结构，
 * 使得用户对单个对象和组合对象的使用具有一致性。
 * 下面以SQL距离
 * 一条SQL语句看做单个对象
 * 事务看做SQL组合对象
 */
public class Main {
    public static void main(String[] args) {
        DBA user = new DBA();
        SQLOperate select = new SQLCommand("select * from table");
        user.execute(select);
        SQLOperate update = new SQLCommand("update table SET * = *");
        Transaction transaction = new Transaction(100);
        transaction.add(select);
        transaction.add(update);
        // 对于DBA来说，无论是单个SQL指令还是事务，使用方式都是一样的，只需要调用execute方法，具体内容由开发者自己编写。
        user.execute(transaction);
    }
}